Prefetch techniques have been used in storage systems, in order to improve the speed of the response to access requests from host apparatuses. “Prefetch” means predicting data that is more likely to be accessed by a host apparatus in the near future, reading the data in advance from a corresponding storage device, and storing the data in advance in a faster storage device. When a host apparatus requests access to such prefetched data, a control device in the storage system performs processing on the basis of the access request by accessing the faster storage device, not the corresponding storage device. Namely, if the host apparatus accesses more prefetched data, the speed of the response to the host apparatus is increased further. Therefore, the response performance is improved.
In one typical prefetch technique, when sequential access is requested by a host apparatus, data ahead of the requested data is prefetched to a faster storage area.
In another prefetch technique, first, an adjacent area is determined on the basis of an access command log and the current access command. Next, if the access rate of the determined adjacent area represents a certain value or more, the data in this area adjacent to a storage area specified by the current access command is prefetched to a cache memory.
See Japanese Laid-open Patent Publication No. 2008-293111, for example.
According to the above technique in which data is prefetched when sequential access is requested by a host apparatus, limited conditions are used to determine the data to be prefetched. Namely, the speed of the response to access requests is not improved sufficiently.